home *** CD-ROM | disk | FTP | other *** search
/ 1,000+ Great Games / 1_1000 Games.iso / DOSGAMES / YAHTZE40.ZIP / YAHTZEE2.BAS < prev   
Encoding:
BASIC Source File  |  1995-10-28  |  16.5 KB  |  567 lines

  1. 10 DEFINT A-Y:DIM C(5),K(18,7),F(5),A$(7),S(6,5),M(13),TN(6),DU(6):KEY OFF:COLOR 15,0,0:WIDTH 80:LOCATE ,,0:randomize timer:GOTO 5230
  2. 20 SCREEN 0,1:RESTORE 70:FOR N=1 TO 6:READ TN(N):NEXT
  3. 40 GOSUB 3700
  4. 50 C1=39:C2=63:C3=33:C4=56
  5. 60 CLS:GOSUB 3330
  6. 70 DATA 49,51,53,54,56,61
  7. 80 GOSUB 4920:REM  draw yatzee board
  8. 100 LOCATE 25,1,0
  9. 110 PRINT"How many players?  ";:GOSUB 990
  10. 120 GOSUB 5200: N=ASC(KB$)-48
  11. 130 IF N<1 OR N>5 THEN 100
  12. 140 IF N<5 THEN GOSUB 4600
  13. 150 IF CC=1 THEN GOSUB 4080
  14. 160 FOR A= 1 TO N
  15. 170 LOCATE 25,1:PRINT SPACE$(70);:LOCATE 25,1
  16. 180 Color 15:PRINT"Player Number"A;"Name please  ";
  17. 190 GOSUB 990:LINE INPUT ;A$(A):IF A$(A)= "" THEN SOUND 3000,.1:GOTO 170
  18. 200 A$(A)=LEFT$(A$(A),9)
  19. 210 NEXT A
  20. 220 IF CC=1 THEN N=N+1:A$(N)="Computer"
  21. 230 LOCATE 23,1,0
  22. 240 A= 0
  23. 250 REM
  24. 260 REM   NEXT ROLL PRESET
  25. 270 REM
  26. 280 A=A+1:IF A>N THEN A=1
  27. 290 H=0:GOSUB 3940
  28. 300 IF A=0 THEN 3380
  29. 310 IF K(18,A)=2 THEN 280
  30. 320 LOCATE 23,1:PRINT SPACE$(60);
  31. 330 LOCATE 23,4*(A-1)+14:PRINT A$(A);
  32. 340 REM
  33. 350 REM   INITIAL ROLL
  34. 360 REM
  35. 370 H=H+1:MR=0
  36. 380 FOR B=1 TO 5
  37. 390 J=B-1:C(B)=INT(6*RND(1)+1)
  38. 400 DIE=C(B):F(B)=0
  39. 410 GOSUB 3860:GOSUB 4130
  40. 420 NEXT B
  41. 430 IF A*CC=N THEN 1040
  42. 440 REM
  43. 450 REM  PLAYER SELECTS QTY TO ROLL
  44. 460 REM
  45. 470 GOSUB 5180
  46. 480 IF H>2 THEN 840
  47. 490 Color 14:PRINT" How many dice to roll again? ";:GOSUB 980:GOSUB 5200:F$=KB$:PRINT F$;:F=ASC(F$)-48:LOCATE ,,0
  48. 500 IF F=-1 THEN GOSUB 5220
  49. 510 IF F<0 OR F>5 THEN 470
  50. 520 IF F=0 THEN 840
  51. 530 IF F=5 THEN 340
  52. 540 REM
  53. 550 REM  PLAYER SELECTS DICE TO ROLL
  54. 560 REM
  55. 570 H=H+1
  56. 580 GOSUB 5180
  57. 590 FOR NN=1 TO 4:F(NN)=0:NEXT
  58. 600 Color 13:PRINT" Roll which";F;"dice again   ";
  59. 610 GOSUB 990:FOR ND=1 TO F
  60. 620 GOSUB 5200:F$=KB$::F(ND)=ASC(F$)-48:GOSUB 1020:IF F(ND)=0 AND ND=1 THEN ND=F:GOTO 640
  61. 630 IF F(ND)<1 OR F(ND)>5 THEN 620
  62. 640 PRINT F(ND);:NEXT
  63. 650 X=2:XF=0
  64. 660 FOR J=1 TO F
  65. 670 IF F=1 THEN 690
  66. 680 IF F(J)=F(J+1)THEN X=1
  67. 690 IF F(1)=0 THEN XF=1
  68. 700 NEXT J:IF XF=1 THEN H=H-1:GOTO 470
  69. 710 ON X GOTO 580,720
  70. 720 REM
  71. 730 REM  PLAYER ROLLS DICE AGAIN
  72. 740 REM
  73. 750 FOR B=1 TO 4
  74. 760 IF F(B)=0 THEN 820
  75. 770 C(F(B))=INT(6*RND(1)+1)
  76. 780 DIE=C(F(B)):J=F(B)-1
  77. 790 GOSUB 3860
  78. 800 GOSUB 4130
  79. 810 F(B)=0
  80. 820 NEXT B
  81. 830 GOTO 440
  82. 840 REM
  83. 850 REM   PLAY BOARD NUMBER
  84. 860 REM
  85. 870 GOSUB 5180
  86. 880 Color 15:PRINT " Play board position?  ";:
  87. 881 kb$=inkey$:on instr("@AaBbCcDdEeFfGgHhIiJjKkLlMm"+chr$(27), KB$)+1 goto 881,881,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,3680
  88. 884 gosub 980:I$=KB$:if asc(i$)>96 then i$=chr$(asc(kb$)-32)
  89. 885 I=ASC(I$)-64:LOCATE ,,0:
  90. 890 GOSUB 1020:PRINT I$;:GOTO 920
  91. 900 PRINT I$;
  92. 920 IF I=12 AND K(12,A)>-1 THEN 1040
  93. 930 IF K(I,A)=0 THEN 1040
  94. 940 LOCATE 24,1:sound 3000,.1
  95. 950 Color 12:PRINT"NO - NO - DUMMY - - TRY AGAIN";:Delay 2:LOCATE 24,1:PRINT SPACE$(60);
  96. 960 LOCATE 25,1:PRINT SPACE$(60);:LOCATE 25,1
  97. 970 GOTO 880
  98. 980 REM  HIGH PITCH CLICK
  99. 990 PLAY"L64T200N70":RETURN
  100. 1000 REM  GLISSANDO SOUND
  101. 1010 PLAY"MBt255MLL64O5CC#DD#EFF#GG#AA#B":RETURN
  102. 1020 ' LO PITCH CLICK
  103. 1030 PLAY "L64T200N46":RETURN
  104. 1040 REM
  105. 1050 REM  DICE LOGIC
  106. 1060 REM  CLEAR/SET S(M,K)
  107. 1070 LOCATE 25,1:PRINT SPACE$(70);
  108. 1080 FOR M=0 TO 6
  109. 1090 FOR K=0 TO 5
  110. 1100 S(M,K)=0
  111. 1110 NEXT K
  112. 1120 NEXT M
  113. 1130 FOR J=1 TO 5
  114. 1140 X=C(J):S(X,0)=S(X,0)+1
  115. 1150 P=S(X,0):S(X,P)=J
  116. 1160 NEXT J
  117. 1170 REM
  118. 1180 REM  SET S(0,K)=M SEQUENCE BY QTY
  119. 1190 REM
  120. 1200 X=0
  121. 1210 FOR J=5 TO 1 STEP -1
  122. 1220 FOR M=6 TO 1 STEP -1
  123. 1230 IF S(M,0)<>J THEN 1250
  124. 1240 S(0,X)=M:X=X+1
  125. 1250 NEXT M
  126. 1260 NEXT J
  127. 1270 IF A*CC=N THEN 1640
  128. 1280 IF I>6 THEN 1360
  129. 1290 REM
  130. 1300 REM  CHECK PLAYER BOARD 1-6
  131. 1310 REM
  132. 1320 GOSUB 4710
  133. 1330 IF X=-1 THEN 1620
  134. 1340 K(I,A)=I*S(S(0,X),0)
  135. 1350 GOTO 2880
  136. 1360 REM
  137. 1370 REM  CHECK PLAYER BOARD 7-13
  138. 1380 REM
  139. 1390 ON I-6 GOTO 1400,1420,1440,1460,1510,1550,1580
  140. 1400 IF S(S(0,0),0)<3 THEN 1620
  141. 1410 GOSUB 4790:GOTO 2880
  142. 1420 IF S(S(0,0),0)<4 THEN 1620
  143. 1430 GOSUB 4790:GOTO 2880
  144. 1440 IF S(S(0,0),0)<>3 OR S(S(0,1),0)<>2 THEN 1620
  145. 1450 K(9,A)=25:GOTO 2880
  146. 1460 IF S(1,0)>0 AND S(2,0)>0 AND S(3,0)>0 AND S(4,0)>0 THEN 1500
  147. 1470 IF S(2,0)>0 AND S(3,0)>0 AND S(4,0)>0 AND S(5,0)>0 THEN 1500
  148. 1480 IF S(3,0)>0 AND S(4,0)>0 AND S(5,0)>0 AND S(6,0)>0 THEN 1500
  149. 1490 GOTO 1620
  150. 1500 K(10,A)=30:GOTO 2880
  151. 1510 IF S(1,0)AND S(2,0) AND S(3,0) AND S(4,0)AND S(5,0)=1 THEN 1540
  152. 1520 IF S(2,0) AND S(3,0) AND S(4,0) AND S(5,0) AND S(6,0)=1 THEN 1540
  153. 1530 GOTO 1620
  154. 1540 K(11,A)=40:GOTO 2880
  155. 1550 IF S(S(0,0),0)<>5 THEN 1620
  156. 1560 IF K(12,A)=0 THEN K(12,A)=50:GOTO 2880
  157. 1570 K(12,A)=K(12,A)+100:GOTO 2880
  158. 1580 GOSUB 4790:GOTO 2880
  159. 1590 REM
  160. 1600 REM  SET PLAYER INVALID
  161. 1610 REM
  162. 1620 K(I,A)=-1
  163. 1630 GOTO 2880
  164. 1640 REM
  165. 1650 REM  COMPUTER CHECKS
  166. 1660 REM
  167. 1670 I=12:LOCATE 25,1:PRINT SPACE$(70);
  168. 1680 IF S(S(0,0),0)=5 AND K(12,A)=0 THEN K(12,A)=50:GOTO 2880
  169. 1690 IF S(S(0,0),0)=5 AND K(12,A)>0 THEN K(12,A)=K(12,A)+100:GOTO 2880
  170. 1700 I=8
  171. 1710 IF S(S(0,0),0)=4 AND K(8,A)=0 THEN GOSUB 4790:GOTO 2880
  172. 1720 I=9
  173. 1730 IF S(S(0,0),0)=3 AND S(S(0,1),0)=2 AND K(9,A)=0 THEN K(9,A)=25:GOTO 2880
  174. 1740 IF K(11,A)<>0 THEN 1800
  175. 1750 I=11
  176. 1760 IF S(1,0)AND S(2,0) AND S(3,0) AND S(4,0) AND S(5,0)=1 THEN 1790
  177. 1770 IF S(2,0)AND S(3,0) AND S(4,0) AND S(5,0) AND S(6,0)=1 THEN 1790
  178. 1780 GOTO 1800
  179. 1790 K(11,A)=40:GOTO 2880
  180. 1800 IF K(10,A)<>0 THEN 1870
  181. 1810 I=10
  182. 1820 IF S(1,0)>0 AND S(2,0)>0 AND S(3,0)>0 AND S(4,0)>0 THEN 1860
  183. 1830 IF S(2,0)> 0 AND S(3,0)> 0 AND S(4,0)> 0 AND S(5,0)> 0 THEN 1860
  184. 1840 IF S(3,0)> 0 AND S(4,0)> 0 AND S(5,0)> 0 AND S(6,0)> 0 THEN 1860
  185. 1850 GOTO 1870
  186. 1860 K(10,A)=30:GOTO 2880
  187. 1870 IF H<3 THEN 2040
  188. 1880 I=6
  189. 1890 IF S(6,0)>2 AND K(6,A)=0 THEN K(6,A)=6*S(6,0):GOTO 2880
  190. 1900 I=5
  191. 1910 IF S(5,0)>2 AND K(5,A)=0 THEN K(5,A)=5*S(5,0):GOTO 2880
  192. 1920 I=4
  193. 1930 IF S(4,0)>2 AND K(4,A)=0 THEN K(4,A)=4*S(4,0):GOTO 2880
  194. 1940 I=3
  195. 1950 IF S(3,0)>2 AND K(3,A)=0 THEN K(3,A)=3*S(3,0):GOTO 2880
  196. 1960 I=7
  197. 1970 IF S(S(0,0),0)>2 AND K(7,A)=0 THEN GOSUB 4790:GOTO 2880
  198. 1980 I=2
  199. 1990 IF S(2,0)>2 AND K(2,A)=0 THEN K(2,A)=2*S(2,0):GOTO 2880
  200. 2000 I=1
  201. 2010 IF S(1,0)>2 AND K(1,A)=0 THEN K(1,A)=S(1,0):GOTO 2880
  202. 2020 I=13:IF K(13,A)<>0 THEN 2040
  203. 2030 IF C(1)+C(2)+C(3)+C(4)+C(5)>19 THEN GOSUB 4790:GOTO 2880
  204. 2040 REM
  205. 2050 REM  CLEAR DICE NUMBER F(B)
  206. 2060 REM  COMPUTER
  207. 2070 REM
  208. 2080 FOR B=1 TO 5
  209. 2090 F(B)=0
  210. 2100 NEXT B
  211. 2110 REM
  212. 2120 REM  GET DICE CONTROL
  213. 2130 REM  COMPUTER
  214. 2140 REM
  215. 2150 H=H+1:IF H>3 THEN 2740
  216. 2160 I=M(MR):IF I<>0 THEN 2190
  217. 2170 MR=MR+1:IF MR>13 THEN MR=1
  218. 2180 GOTO 2160
  219. 2190 IF I=12 AND K(12,A)>-1 THEN 2230
  220. 2200 IF K(I,A)<>0 THEN 2170
  221. 2210 IF I=9 THEN 2340
  222. 2220 IF I=10 OR I=11 THEN 2460
  223. 2230 REM
  224. 2240 REM  GET DICE 1,2,3,4
  225. 2250 REM  COMPUTER
  226. 2260 REM
  227. 2270 M=0:J=1
  228. 2280 M=M+ 1:IF M>4 THEN 2620
  229. 2290 K=S(0,M):IF K=0 THEN 2620
  230. 2300 FOR L=1 TO S(K,0)
  231. 2310 F(J)=S(K,L):J=J+1
  232. 2320 NEXT L
  233. 2330 GOTO 2280
  234. 2340 REM
  235. 2350 REM  GET DICE FH
  236. 2360 REM  COMPUTER
  237. 2370 REM
  238. 2380 M=0:J=1
  239. 2390 M=M+1:IF M>4 THEN 2620
  240. 2400 K=S(0,M):IF K=0 THEN 2620
  241. 2410 IF K>1 THEN 2390
  242. 2420 FOR L=1 TO S(K,0)
  243. 2430 F(J)=S(K,L):J=J+1
  244. 2440 NEXT L
  245. 2450 GOTO 2390
  246. 2460 REM
  247. 2470 REM  GET DICE LG/SM ST
  248. 2480 REM  COMPUTER
  249. 2490 REM
  250. 2500 M=0:J=1
  251. 2510 M=M+1:IF M>4 THEN 2580
  252. 2520 K=S(0,M):IF K=0 THEN 2580
  253. 2530 IF S(K,0)=1 THEN 2510
  254. 2540 FOR L=1 TO S(K,0)
  255. 2550 F(J)=S(K,L):J=J+1
  256. 2560 NEXT L
  257. 2570 GOTO 2510
  258. 2580 IF F(1)<>0 THEN 2620
  259. 2590 L=INT(2*RND(1)+1)
  260. 2600 F(1)=5
  261. 2610 IF L=1 THEN F(1)=1
  262. 2620 REM
  263. 2630 REM  COMPUTER ROLL AGAIN
  264. 2640 REM
  265. 2650 FOR B=1 TO 4
  266. 2660 IF F(B)<1 THEN 2710
  267. 2670 C(F(B))=INT(6*RND(1)+1)
  268. 2680 DIE=C(F(B)):J=F(B)-1
  269. 2690 GOSUB 3860
  270. 2700 GOSUB 4130
  271. 2710 F(B)=0
  272. 2720 NEXT B
  273. 2730 GOTO 1040
  274. 2740 REM
  275. 2750 REM  COMPUTER MUST SCORE
  276. 2760 REM
  277. 2770 MR=MR+1:IF MR>13 THEN MR=1
  278. 2780 I=M(MR):IF I=0 THEN 2770
  279. 2790 IF K(I,A)<>0 THEN 2770
  280. 2800 IF I>6 THEN 2860
  281. 2810 GOSUB 4710
  282. 2820 IF X=-1 THEN 2870
  283. 2830 IF K(I,A)<>0 THEN 2770
  284. 2840 K(I,A)=S(I,0)*I
  285. 2850 IF K(I,A)<>0 THEN 2880
  286. 2860 IF I=13 AND K(13,A)=0 THEN GOSUB 4790
  287. 2870 IF K(I,A)=0 THEN K(I,A)=-1
  288. 2880 REM
  289. 2890 REM  GET SCOREBOARD TOTALS
  290. 2900 REM
  291. 2910 FOR J=14 TO 17
  292. 2920 K(J,A)=0
  293. 2930 NEXT J
  294. 2940 FOR J=1 TO 6
  295. 2950 IF K(J,A)<0 THEN 2970
  296. 2960 K(15,A)=K(15,A)+K(J,A)
  297. 2970 NEXT J
  298. 2980 IF K(15,A)>62 THEN K(14,A)=35
  299. 2990 FOR J=7 TO 13
  300. 3000 IF K(J,A)<0 THEN 3020
  301. 3010 K(16,A)=K(16,A)+K(J,A)
  302. 3020 NEXT J
  303. 3030 K(17,A)=K(14,A)+K(15,A)+K(16,A)
  304. 3040 REM
  305. 3050 REM  PRINT SCORE
  306. 3060 REM
  307. 3070 GOSUB 1010
  308. 3080 COLOR 15,0
  309. 3090 FOR J= 1 TO 6
  310. 3100 IF K(J,A)<0 THEN LOCATE J+1,4*(A-1)+15:PRINT"  0";:GOTO 3130
  311. 3110 IF K(J,A)<1 THEN 3130
  312. 3120 LOCATE J+1,4*(A-1)+15:PRINT USING"###";K(J,A);
  313. 3130 NEXT J
  314. 3140 FOR J=7 TO 13
  315. 3150 IF K(J,A)<0 THEN LOCATE J+4,4*(A- 1)+15:PRINT"  0":GOTO 3180
  316. 3160 IF K(J,A)<1 THEN 3180
  317. 3170 LOCATE J+4,4*(A-1)+15:PRINT USING"###";K(J,A)
  318. 3180 NEXT J
  319. 3190 LOCATE 9,4*(A-1)+15:PRINT USING"###";K(15,A)
  320. 3200 LOCATE 19,4*(A-1)+15:PRINT USING"###";K(16,A)
  321. 3210 LOCATE 20,4*(A-1)+15:PRINT USING"###";K(14,A)
  322. 3220 LOCATE 21,4*(A-1)+15:PRINT USING"###";K(17,A)
  323. 3230 COLOR 7,0
  324. 3240 IF A*CC<>N THEN 250
  325. 3250 REM
  326. 3260 REM  RESET M(I) COMPUTER PRIORITIES
  327. 3270 REM
  328. 3280 FOR B=1 TO 13
  329. 3290 IF M(B)=12 THEN 3310
  330. 3300 IF M(B)=I THEN M(B)=0
  331. 3310 NEXT B
  332. 3320 GOTO 250
  333. 3330 REM
  334. 3340 REM   INSTRUCTIONS
  335. 3350 REM
  336. 3360 RETURN
  337. 3370 RETURN
  338. 3380 REM
  339. 3390 REM   END - SORT WINNER
  340. 3400 REM
  341. 3405 locate 23,1:print space$(60)
  342. 3410 X=2:IF N=1 THEN 3490
  343. 3420 FOR J=1 TO N-1
  344. 3430 IF K(17,J)>K(17,J+1) THEN 3470
  345. 3440 K=K(17,J):K(17,J)=K(17,J+1):K(17,J+1)=K
  346. 3450 A$=A$(J):A$(J)=A$(J+1):A$(J+1)=A$
  347. 3460 X=1
  348. 3470 NEXT J
  349. 3480 ON X GOTO 3380,3490
  350. 3490 REM
  351. 3500 REM   PRINT WINNERS STANDINGS
  352. 3510 REM
  353. 3520 RESTORE 3810
  354. 3530 color 15:FOR J=1 TO N
  355. 3540 LOCATE 24,1:PRINT SPACE$(60);
  356. 3560 read a$:LOCATE 24,1:PRINT A$;"  ";A$(J);:sound 3000,.1
  357. 3580 z=timer:while z+3>timer:wend
  358. 3600 NEXT J:color 7
  359. 3610 LOCATE 24,1:PRINT SPACE$(60);
  360. 3620 rem POKE &H417,(PEEK(&H417) OR &H40):REM UPPER CASE
  361. 3630 Delay 2
  362. 3640 REM
  363. 3650 GOSUB 990:Color 15:LOCATE 24,1:PRINT"Play again?  Y/N  ";
  364. 3660 Y$=INKEY$:IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" and y$<>"n" AND Y$<>CHR$(27) THEN 3660
  365. 3670 IF Y$="Y" OR Y$="y" THEN 40
  366. 3680 cls:END
  367. 3690 cls:END
  368. 3700 REM
  369. 3710 REM   CLEAR MATRICES
  370. 3720 REM
  371. 3730 FOR K=1 TO 7
  372. 3740 FOR J=1 TO 18
  373. 3750 K(J,K)=0
  374. 3760 NEXT J
  375. 3770 A$(K)=""
  376. 3780 NEXT K
  377. 3790 CLS
  378. 3800 RETURN
  379. 3810 DATA " The Winner! "
  380. 3820 DATA " Second Place"," Third Place "
  381. 3830 DATA " Fourth Place "," Fifth Place "
  382. 3840 DATA " Sixth Place "," Dead Last"
  383. 3860 REM
  384. 3870 REM   ERASE DIE
  385. 3880 REM
  386. 3890 COLOR 4,3:PRINT"";:
  387. 3900 LOCATE 4*J+3,50:PRINT"       ";
  388. 3910 LOCATE 4*J+4,50:PRINT"       ";
  389. 3920 LOCATE 4*J+5,50:PRINT"       ";
  390. 3930 COLOR 7,0:RETURN
  391. 3940 REM
  392. 3950 REM    CHECK IF DONE
  393. 3960 REM
  394. 3970 X=0
  395. 3980 FOR J=1 TO N
  396. 3990 Y=2
  397. 4000 FOR K= 1 TO 13
  398. 4010 IF K(K,J)=0 THEN Y= 1
  399. 4020 NEXT K
  400. 4030 K(18,J)=Y
  401. 4040 IF Y=2 THEN X=X+1
  402. 4050 NEXT J
  403. 4060 IF X=>N THEN A=0
  404. 4070 RETURN
  405. 4080 REM
  406. 4090 REM  COMPUTER PRIORITIES INFO
  407. 4100 REM
  408. 4110 GOSUB 4880
  409. 4120 RETURN
  410. 4130 REM
  411. 4140 REM   PRINT DIE
  412. 4150 REM
  413. 4160 COLOR 4,3
  414. 4170 REM
  415. 4180 rem PLAY"L32T200N"+STR$(TN(DIE))
  416. 4190 ON DIE GOTO 4530,4470,4410,4350,4290,4230
  417. 4200 REM
  418. 4210 REM SIX
  419. 4220 REM
  420. 4230 LOCATE 4*J+3,50:PRINT " ";CHR$(2);" ";CHR$(2);" ";CHR$(2);" ";
  421. 4240 LOCATE 4*J+4,50:PRINT "       ";
  422. 4250 LOCATE 4*J+5,50:PRINT " ";CHR$(2);" ";CHR$(2);" ";CHR$(2);" ";:GOTO 4560
  423. 4260 REM
  424. 4270 REM FIVE
  425. 4280 REM
  426. 4290 LOCATE 4*J+3,50:PRINT " ";CHR$(2);"   ";CHR$(2);" ";
  427. 4300 LOCATE 4*J+4,50:PRINT "   ";CHR$(2);"   ";
  428. 4310 LOCATE 4*J+5,50:PRINT " ";CHR$(2);"   ";CHR$(2);" ";:GOTO 4560
  429. 4320 REM
  430. 4330 REM FOUR
  431. 4340 REM
  432. 4350 LOCATE 4*J+3,50:PRINT " ";CHR$(2);"   ";CHR$(2);" ";
  433. 4360 LOCATE 4*J+4,50:PRINT "       ";
  434. 4370 LOCATE 4*J+5,50:PRINT " ";CHR$(2);"   ";CHR$(2);" ";:GOTO 4560
  435. 4380 REM
  436. 4390 REM THREE
  437. 4400 REM
  438. 4410 LOCATE 4*J+3,50:PRINT " ";CHR$(2);"     ";
  439. 4420 LOCATE 4*J+4,50:PRINT "   ";CHR$(2);"   ";
  440. 4430 LOCATE 4*J+5,50:PRINT "     ";CHR$(2);" ";:GOTO 4560
  441. 4440 REM
  442. 4450 REM TWO
  443. 4460 REM
  444. 4470 LOCATE 4*J+3,50:PRINT " ";CHR$(2);"     ";
  445. 4480 LOCATE 4*J+4,50:PRINT "       ";
  446. 4490 LOCATE 4*J+5,50:PRINT "     ";CHR$(2);" ";:GOTO 4560
  447. 4500 REM
  448. 4510 REM ONE
  449. 4520 REM
  450. 4530 LOCATE 4*J+3,50:PRINT "       ";
  451. 4540 LOCATE 4*J+4,50:PRINT "   ";CHR$(2);"   ";
  452. 4550 LOCATE 4*J+5,50:PRINT "       ";:GOTO 4560
  453. 4560 REM   GET OUT
  454. 4570 COLOR 7,0
  455. 4580 LOCATE 1,1
  456. 4590 RETURN
  457. 4600 REM
  458. 4610 REM  COMPUTER OPTION
  459. 4620 REM
  460. 4630 CC=0
  461. 4640 LOCATE 25,1
  462. 4650 Color 11:PRINT"Do You wish to play against me? Y/N  ";:GOSUB 990
  463. 4660 Y$=INKEY$:IF Y$="" THEN 4660 ELSE SOUND 3000,.1
  464. 4670 IF Y$="N" OR Y$="n" THEN RETURN
  465. 4680 IF Y$<>"Y" AND Y$<>"y" THEN 4640
  466. 4690 CC=1
  467. 4700 RETURN
  468. 4710 REM
  469. 4720 REM  CHECK FOR ACES-SIXES ANY POSITION
  470. 4730 REM
  471. 4740 X=-1
  472. 4750 FOR J=0 TO 4
  473. 4760 IF S(0,J)=I THEN X=J
  474. 4770 NEXT J
  475. 4780 RETURN
  476. 4790 REM
  477. 4800 REM  TOTAL DICE VALUE
  478. 4810 REM
  479. 4820 FOR J=1 TO 5
  480. 4830 K(I,A)=K(I,A)+C(J)
  481. 4840 NEXT J
  482. 4850 RETURN
  483. 4860 REM
  484. 4870 REM
  485. 4880 REM  COMPUTER PRIORIRIES
  486. 4890 RESTORE 4900
  487. 4900 DATA 11,9,12,8,1,2,3,4,5,6,10,7,13
  488. 4910 FOR Y=1 TO 13:READ M(Y):NEXT :RETURN
  489. 4920 REM player's board
  490. 4930 CLS:COLOR 14
  491. 4940 PRINT"             ╒═══╤═══╤═══╤═══╤═══╤═══╕
  492. 4950 PRINT"ACES........A│...│...│...│...│...│...│A"
  493. 4960 PRINT"TWOS........B│...│...│...│...│...│...│B"
  494. 4970 PRINT"THREES......C│...│...│...│...│...│...│C"
  495. 4980 PRINT"FOURS.......D│...│...│...│...│...│...│D"
  496. 4990 PRINT"FIVES.......E│...│...│...│...│...│...│E"
  497. 5000 PRINT"SIXES.......F│...│...│...│...│...│...│F"
  498. 5010 PRINT"             ╞═══╪═══╪═══╪═══╪═══╪═══╡"
  499. 5020 PRINT"TOTAL UPPER..│...│...│...│...│...│...│"
  500. 5030 PRINT"             ╞═══╪═══╪═══╪═══╪═══╪═══╡"
  501. 5040 PRINT"3 OF A KIND.G│...│...│...│...│...│...│G"
  502. 5050 PRINT"4 OF A KIND.H│...│...│...│...│...│...│H"
  503. 5060 PRINT"FULL HOUSE..I│...│...│...│...│...│...│I"
  504. 5070 PRINT"SM STRAIGHT.J│...│...│...│...│...│...│J"
  505. 5080 PRINT"LG STRAIGHT.K│...│...│...│...│...│...│K"
  506. 5090 PRINT"YATZEE......L│...│...│...│...│...│...│L"
  507. 5100 PRINT"CHANCE......M│...│...│...│...│...│...│M"
  508. 5110 PRINT"             ╞═══╪═══╪═══╪═══╪═══╪═══╡"
  509. 5120 PRINT"TOTAL LOWER..│...│...│...│...│...│...│"
  510. 5130 PRINT"TOP BONUS....│...│...│...│...│...│...│"
  511. 5140 PRINT"GRAND TOTAL..│...│...│...│...│...│...│"
  512. 5150 PRINT"             ╘═══╧═══╧═══╧═══╧═══╧═══╛"
  513. 5160 COLOR 15:FOR N=1 TO 5:LOCATE N*4,46:PRINT N;:NEXT
  514. 5170 COLOR 15:RETURN
  515. 5180 LOCATE 25,1:PRINT SPACE$(70);:LOCATE 25,1:RETURN
  516. 5190 ' KB INPUT AND ESCAPE
  517. 5200 KB$="":WHILE KB$="":KB$=INKEY$:WEND
  518. 5210 IF KB$=CHR$(27) THEN 3680 ELSE RETURN
  519. 5220 RETURN
  520. 5230 '     YAHTZEE
  521. 5240 ' ORIGINAL BY JL HELMS & MF PEZOK FOR COCO II
  522. 5250 ' CORONADO, CA
  523. 5260 ' ADAPTED TO IBM PC BY PATRICK LEABO
  524. 5270 ' TUCSON, AZ
  525. 5280 '
  526. 5290 CLS:LOCATE 2,33:PRINT "Y A H T Z E E":LOCATE 4,34:PRINT "Version 4.0"
  527. 5300 LOCATE 6,32:PRINT "October 19, 1995"
  528. 5310 LOCATE 8,28:PRINT "Originally Developed By"
  529. 5320 LOCATE 10,25:PRINT "J.L. HELMS    &    M.F. PEZOK"
  530. 5330 LOCATE 11,25:PRINT "1009 LEYTE RD / 1321 SAIPAN RD"
  531. 5340 LOCATE 12,29:PRINT "CORONADO,  CA.  92118"
  532. 5350 LOCATE 13,27:PRINT "(714) 435-6992 / 437-4659"
  533. 5360 LOCATE 15,23:PRINT "ADAPTED TO IBM PC BY PATRICK LEABO"
  534. 5370 LOCATE 16,35:PRINT "TUCSON, AZ"
  535. 5380 LOCATE 18,20:PRINT "Corrected and further modified for the PC"
  536. 5390 LOCATE 19,22:PRINT "by James Huckabey (1987,1989,1995)"
  537. 5400 LOCATE 20,30:PRINT "3621-A Fraser Street"
  538. 5410 LOCATE 21,27:PRINT "Bellingham, WA 98226-2473"
  539. 5420 ' LOCATE 22,33:PRINT "(360) 671-2868"
  540. 5430 PRINT CHR$(11)
  541. 5440 GOSUB 990:LOCATE 24,27,0:PRINT "Press <Return> To Continue";
  542. 5450 IF INKEY$<>CHR$(13) THEN 5450
  543. 5460 '
  544. 5470 '     INSTRUCTIONS
  545. 5480 '
  546. 5490 CLS:PRINT TAB(29)"Y A H T Z E E":PRINT
  547. 5500 PRINT TAB(17)"This is the game of YAHTZEE - "
  548. 5510 PRINT TAB(17)"From 1 to 7 players may play at the same time"
  549. 5520 PRINT TAB(17)"with each players current status shown on the"
  550. 5530 PRINT TAB(17)"playing board, including TOTAL scores."
  551. 5540 PRINT
  552. 5550 PRINT TAB(17)"The only difference between this game and the"
  553. 5560 PRINT TAB(17)"world famous YAHTZEE home version, are the"
  554. 5570 PRINT TAB(17)"YAHTZEEs here ..... The first YAHTZEE scores"
  555. 5580 PRINT TAB(17)"50 POINTS, and each additional one will yield"
  556. 5590 PRINT TAB(17)"a bonus of 100 POINTS (If the YAHTZEE is put"
  557. 5600 PRINT TAB(17)"into the YAHTZEE block)..... In addition you"
  558. 5610 PRINT TAB(17)"will be given an extra turn at the end of"
  559. 5620 PRINT TAB(17)"the game (for each extra YAHTZEE put here).":PRINT
  560. 5630 PRINT TAB(17)"The WINNER will be announced at the end of"
  561. 5640 PRINT TAB(17)"the game - - But I wouldn't advice anyone"
  562. 5650 PRINT TAB(17)"to be last......."
  563. 5660 PRINT:PRINT
  564. 5670 GOSUB 990:Color 15:LOCATE 22,25,0:PRINT "Press <RETURN> to continue";
  565. 5680 IF INKEY$<>CHR$(13) THEN 5680
  566. 5720 GOTO 20
  567.